Operating systems are often updated to fix certain software bugs and/or improve the performance of network devices. For example, an operating system running on a router may receive an update that is intended to patch a newly discovered security vulnerability and improve the router's performance. In this example, the update may arrive as a software bundle that includes various packages. While some of these packages may be relevant to and/or necessary for the router to achieve the desired update, others may be irrelevant to and/or unnecessary for the router to achieve the desired update.
For example, the software bundle may be designed to enable different router models running different operating system versions to achieve the desired update. Accordingly, one router model with one version of the operating system may need to install a different set of packages than another router model with another version of the operating system. Over time, the size of the updates may increase due to new packages being added to the software bundle. Since, in this example, all the packages for the update are included in the software bundle, the process of downloading the software bundle to the router may take a significant amount of time and/or resources.
The instant disclosure, therefore, identifies and addresses a need for systems and methods for efficiently updating operating systems installed on network devices.